#ifndef _OCPP_ObliqueConfig_H_
#define _OCPP_ObliqueConfig_H_

#include "ObliqueTileStatistic.h"

namespace OCPP
{
	namespace Cesium
	{
		class _Osg2CesiumExport ObliqueConfig
		{
		public:
			ObliqueConfig() {}
			Json::Value toJson();
			void fromJson(Json::Value& value);
			double computeGE(uint32 L);
			void setStartTileLevel(uint32 level);
			void countPixelsPerLevel(LongVector pixelsPerLevel);
			uint32 getOverlapTileNum(uint32 L);
			String srs = "";
			Vector3 origin;
			Vector3 location;
			Cesium::Rectangle region;
			uint32 debugDepth = 100;
			String dataPath;
			String outputPath;
			uint32 numTiles = 0;
			uint32 nodeDepth = 0;
			uint32 startTileLevel = 0;
			uint32 endTileLevel = 0;
			osg::BoundingBox boundingBox;
			LongVector numPixelPerLevels;
			std::map<uint32, uint32> tileLevelMap;
			// working state
			uint32 numThread = 1;
			ProcessCallback processCallback;
			FinishedCallback finishedCallback;
			ProcessLogCallback processLogCallback;
		};

	}
}


#endif
